[INFO] cloning repository https://github.com/pleme-io/kindling
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pleme-io/kindling" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ea2f017ec8d0dcdd041120af1e1368181526fc83
[INFO] testing pleme-io/kindling against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Fkindling" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pleme-io/kindling
[INFO] finished tweaking git repo https://github.com/pleme-io/kindling
[INFO] tweaked toml for git repo https://github.com/pleme-io/kindling written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pleme-io/kindling on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pleme-io/kindling already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/shidou`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/tsunagu`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/shikumi`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded static_assertions_next v1.1.2
[INFO] [stderr]   Downloaded hostname v0.4.2
[INFO] [stderr]   Downloaded async-graphql-axum v7.2.1
[INFO] [stderr]   Downloaded fast_chemail v0.9.6
[INFO] [stderr]   Downloaded asynk-strim v0.1.5
[INFO] [stderr]   Downloaded ascii_utils v0.9.3
[INFO] [stderr]   Downloaded async-graphql-derive v7.2.1
[INFO] [stderr]   Downloaded async-graphql-value v7.2.1
[INFO] [stderr]   Downloaded async-graphql-parser v7.2.1
[INFO] [stderr]   Downloaded handlebars v6.4.0
[INFO] [stderr]   Downloaded async-graphql v7.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6
[INFO] running `Command { std: "docker" "start" "-a" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6", kill_on_drop: false }`
[INFO] [stdout] d0a8d4ae912c59f808cc28223bfd157fe87123762e64f3a698a72b6673766ff6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542
[INFO] running `Command { std: "docker" "start" "-a" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling inlinable_string v0.1.15
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling num-modular v0.6.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling num-order v1.2.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling Inflector v0.11.4
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling ascii_utils v0.9.3
[INFO] [stderr]    Compiling fast_chemail v0.9.6
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling arc-swap v1.9.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling asynk-strim v0.1.5
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling static_assertions_next v1.1.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling pleme-kindling v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pear v0.2.9
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling handlebars v6.4.0
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling async-graphql-value v7.2.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling async-graphql-parser v7.2.1
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling async-graphql-derive v7.2.1
[INFO] [stderr]    Compiling shikumi v0.1.0 (https://github.com/pleme-io/shikumi#648d32a6)
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tsunagu v0.1.0 (https://github.com/pleme-io/tsunagu#6986dcfb)
[INFO] [stderr]    Compiling shidou v0.1.0 (https://github.com/pleme-io/shidou#8be17b63)
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling async-graphql v7.2.1
[INFO] [stderr]    Compiling async-graphql-axum v7.2.1
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/domain/report_collector.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord`
[INFO] [stdout]   --> src/harden/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     PrimitiveOutcome, PrimitiveRecord, ReportStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `all_names` and `registry`
[INFO] [stdout]   --> src/harden/mod.rs:27:22
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use primitives::{all_names, registry};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams`
[INFO] [stdout]   --> src/harden/mod.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 |     compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile,
[INFO] [stdout]    |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]   --> src/vpn/validate.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | use anyhow::{bail, Result};
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardeningPrimitive`
[INFO] [stdout]   --> src/harden/runner.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_stale` is never used
[INFO] [stdout]   --> src/domain/node_report.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl StoredReport {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_stale(&self, max_age_secs: u64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `identity_config` and `report_config` are never read
[INFO] [stdout]   --> src/domain/node_service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct NodeService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     identity_config: IdentityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     report_config: ReportConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used
[INFO] [stdout]    --> src/domain/node_service.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl NodeService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub async fn is_stale(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub async fn redacted_identity(&self) -> Option<NodeIdentity> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn reload_identity(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn report_config(&self) -> &ReportConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `category`, and `description` are never used
[INFO] [stdout]   --> src/harden/primitive.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait HardeningPrimitive: Send + Sync {
[INFO] [stdout]    |           ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn name(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn category(&self) -> PrimitiveCategory;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn description(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `dry` is never used
[INFO] [stdout]    --> src/harden/primitive.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl PrimitiveCtx {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 101 |     pub fn dry() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `no_op` is never used
[INFO] [stdout]    --> src/harden/primitive.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl PrimitiveOutcome {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn no_op() -> Self { Self::default() }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_names` is never used
[INFO] [stdout]   --> src/harden/primitives/mod.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn all_names() -> &'static [&'static str] {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `params` is never read
[INFO] [stdout]    --> src/harden/profile.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct ComposedPlan {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 219 |     pub primitives: Vec<(super::PrimitiveCategory, String)>,
[INFO] [stdout] 220 |     pub params: HardeningParams,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComposedPlan` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_field_path` is never used
[INFO] [stdout]    --> src/node_identity/mod.rs:512:8
[INFO] [stdout]     |
[INFO] [stdout] 512 | pub fn remove_field_path(val: &mut serde_yaml::Value, path: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_field_recursive` is never used
[INFO] [stdout]    --> src/node_identity/mod.rs:520:4
[INFO] [stdout]     |
[INFO] [stdout] 520 | fn remove_field_recursive(val: &mut serde_yaml::Value, parts: &[&str]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `redact` is never used
[INFO] [stdout]    --> src/node_identity/mod.rs:635:12
[INFO] [stdout]     |
[INFO] [stdout] 534 | impl NodeIdentity {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 635 |     pub fn redact(&self, private_fields: &[impl AsRef<str>]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_instance_id` is never used
[INFO] [stdout]     --> src/server/bootstrap.rs:1487:4
[INFO] [stdout]      |
[INFO] [stdout] 1487 | fn get_instance_id() -> Result<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_instance_region` is never used
[INFO] [stdout]     --> src/server/bootstrap.rs:1492:4
[INFO] [stdout]      |
[INFO] [stdout] 1492 | fn get_instance_region() -> Result<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_k3s` and `validate_vpn_security_full` are never used
[INFO] [stdout]    --> src/server/cluster_config.rs:379:12
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl ClusterConfig {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn is_k3s(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn validate_vpn_security_full(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_k3s` is never used
[INFO] [stdout]    --> src/server/health.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result<K3sHealthStatus> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_fluxcd` is never used
[INFO] [stdout]    --> src/server/health.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result<FluxcdHealthStatus> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/vpn/validate.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl VpnValidationError {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 31s
[INFO] running `Command { std: "docker" "inspect" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542", kill_on_drop: false }`
[INFO] [stdout] 8f796a3400b1a9ab287359484f9a3c0f66c1d169a8dbb99bde3d55ce0331c542
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d
[INFO] running `Command { std: "docker" "start" "-a" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }`
[INFO] [stderr]    Compiling pleme-kindling v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/domain/report_collector.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord`
[INFO] [stdout]   --> src/harden/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     PrimitiveOutcome, PrimitiveRecord, ReportStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `all_names` and `registry`
[INFO] [stdout]   --> src/harden/mod.rs:27:22
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use primitives::{all_names, registry};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams`
[INFO] [stdout]   --> src/harden/mod.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 |     compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile,
[INFO] [stdout]    |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]   --> src/vpn/validate.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | use anyhow::{bail, Result};
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HardeningPrimitive`
[INFO] [stdout]   --> src/harden/runner.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `identity_config` and `report_config` are never read
[INFO] [stdout]   --> src/domain/node_service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct NodeService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     identity_config: IdentityConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     report_config: ReportConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used
[INFO] [stdout]    --> src/domain/node_service.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl NodeService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub async fn is_stale(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub async fn redacted_identity(&self) -> Option<NodeIdentity> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn reload_identity(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn report_config(&self) -> &ReportConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `description` are never used
[INFO] [stdout]   --> src/harden/primitive.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait HardeningPrimitive: Send + Sync {
[INFO] [stdout]    |           ------------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn name(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn description(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `no_op` is never used
[INFO] [stdout]    --> src/harden/primitive.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl PrimitiveOutcome {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn no_op() -> Self { Self::default() }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_k3s` is never used
[INFO] [stdout]    --> src/server/health.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result<K3sHealthStatus> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_for_fluxcd` is never used
[INFO] [stdout]    --> src/server/health.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result<FluxcdHealthStatus> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/vpn/validate.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl VpnValidationError {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 41.29s
[INFO] running `Command { std: "docker" "inspect" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d", kill_on_drop: false }`
[INFO] [stdout] df7a97fcc41baea8fcb7a9df74193781c5a3fda8eb52aa4ad8b34c35f598c35d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80
[INFO] running `Command { std: "docker" "start" "-a" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/domain/report_collector.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HardeningPrimitive`, `HardeningReport`, `PrimitiveOutcome`, and `PrimitiveRecord`
[INFO] [stderr]   --> src/harden/mod.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     HardeningPrimitive, HardeningReport, PrimitiveCategory, PrimitiveCtx,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 25 |     PrimitiveOutcome, PrimitiveRecord, ReportStatus,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `all_names` and `registry`
[INFO] [stderr]   --> src/harden/mod.rs:27:22
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub use primitives::{all_names, registry};
[INFO] [stderr]    |                      ^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ComposedPlan`, `FailurePolicy`, and `HardeningParams`
[INFO] [stderr]   --> src/harden/mod.rs:29:14
[INFO] [stderr]    |
[INFO] [stderr] 29 |     compose, ComposedPlan, FailurePolicy, HardeningParams, HardeningProfile,
[INFO] [stderr]    |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bail`
[INFO] [stderr]   --> src/vpn/validate.rs:25:14
[INFO] [stderr]    |
[INFO] [stderr] 25 | use anyhow::{bail, Result};
[INFO] [stderr]    |              ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HardeningPrimitive`
[INFO] [stderr]   --> src/harden/runner.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     HardeningPrimitive, HardeningReport, PrimitiveCtx, PrimitiveOutcome,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `identity_config` and `report_config` are never read
[INFO] [stderr]   --> src/domain/node_service.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct NodeService {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 26 |     identity_config: IdentityConfig,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 27 |     report_config: ReportConfig,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_stale`, `redacted_identity`, `reload_identity`, and `report_config` are never used
[INFO] [stderr]    --> src/domain/node_service.rs:116:18
[INFO] [stderr]     |
[INFO] [stderr]  30 | impl NodeService {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub async fn is_stale(&self) -> bool {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub async fn redacted_identity(&self) -> Option<NodeIdentity> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub async fn reload_identity(&self) -> Result<()> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 151 |     pub fn report_config(&self) -> &ReportConfig {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `name` and `description` are never used
[INFO] [stderr]   --> src/harden/primitive.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub trait HardeningPrimitive: Send + Sync {
[INFO] [stderr]    |           ------------------ methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn name(&self) -> &'static str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     fn description(&self) -> &'static str;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `no_op` is never used
[INFO] [stderr]    --> src/harden/primitive.rs:158:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl PrimitiveOutcome {
[INFO] [stderr]     | --------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn no_op() -> Self { Self::default() }
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `wait_for_k3s` is never used
[INFO] [stderr]    --> src/server/health.rs:144:8
[INFO] [stderr]     |
[INFO] [stderr] 144 | pub fn wait_for_k3s(timeout: Duration, poll_interval: Duration) -> Result<K3sHealthStatus> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `wait_for_fluxcd` is never used
[INFO] [stderr]    --> src/server/health.rs:166:8
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub fn wait_for_fluxcd(timeout: Duration, poll_interval: Duration) -> Result<FluxcdHealthStatus> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `len` is never used
[INFO] [stderr]   --> src/vpn/validate.rs:99:12
[INFO] [stderr]    |
[INFO] [stderr] 96 | impl VpnValidationError {
[INFO] [stderr]    | ----------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 99 |     pub fn len(&self) -> usize {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `pleme-kindling` (bin "kindling" test) generated 13 warnings (run `cargo fix --bin "kindling" -p pleme-kindling --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kindling-9615a8bff37ff3d2)
[INFO] [stdout] 
[INFO] [stdout] running 380 tests
[INFO] [stdout] test client::tests::from_node_not_found_empty_map ... ok
[INFO] [stdout] test client::tests::from_node_not_found_lists_available ... ok
[INFO] [stdout] test commands::init::tests::detect_format_bash ... ok
[INFO] [stdout] test client::tests::new_strips_trailing_slash ... ok
[INFO] [stdout] test client::tests::from_node_found ... ok
[INFO] [stdout] test commands::init::tests::detect_format_bash_env ... ok
[INFO] [stdout] test commands::harden::tests::loads_json_profile ... ok
[INFO] [stdout] test commands::init::tests::detect_format_empty ... ok
[INFO] [stdout] test client::tests::new_preserves_url_without_trailing_slash ... ok
[INFO] [stdout] test commands::init::tests::detect_format_json_with_whitespace ... ok
[INFO] [stdout] test commands::init::tests::detect_format_json ... ok
[INFO] [stdout] test commands::harden::tests::loads_yaml_profile ... ok
[INFO] [stdout] test commands::init::tests::detect_format_unknown ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_invalid_json ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_complex_config ... ok
[INFO] [stdout] test commands::profile::tests::all_profiles_have_components ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_unclosed ... ok
[INFO] [stdout] test commands::profile::tests::profiles_list_is_not_empty ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_basic ... ok
[INFO] [stdout] test commands::profile::tests::all_profiles_have_valid_platform ... ok
[INFO] [stdout] test config::tests::config_default_has_no_auto_install ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_no_quotes_on_delimiter ... ok
[INFO] [stdout] test commands::init::tests::extract_heredoc_missing_delimiter ... ok
[INFO] [stdout] test commands::init::tests::write_config_creates_parent_dirs ... ok
[INFO] [stdout] test commands::init::tests::write_config_sets_permissions ... ok
[INFO] [stdout] test commands::profile::tests::find_profile_k3s_server ... ok
[INFO] [stdout] test commands::profile::tests::find_profile_unknown ... ok
[INFO] [stdout] test commands::profile::tests::profile_names_are_unique ... ok
[INFO] [stdout] test commands::profile::tests::find_profile_known ... ok
[INFO] [stdout] test config::tests::identity_config_default_empty ... ok
[INFO] [stdout] test config::tests::config_deserializes_from_yaml ... ok
[INFO] [stdout] test config::tests::fleet_controller_config_default_disabled ... ok
[INFO] [stdout] test config::tests::telemetry_config_default_disabled ... ok
[INFO] [stdout] test config::tests::config_default_has_empty_nodes ... ok
[INFO] [stdout] test config::tests::config_serializes_and_deserializes ... ok
[INFO] [stdout] test config::tests::daemon_config_with_nodes ... ok
[INFO] [stdout] test config::tests::report_config_defaults ... ok
[INFO] [stdout] test config::tests::config_default_has_no_backend ... ok
[INFO] [stdout] test config::tests::gc_config_default_zero ... ok
[INFO] [stdout] test direnv_setup::tests::use_kindling_sh_is_not_empty ... ok
[INFO] [stdout] test direnv_setup::tests::shell_rc_returns_path_and_hook ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_age_is_non_negative ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_collector_version ... ok
[INFO] [stdout] test config::tests::daemon_config_default_addresses ... ok
[INFO] [stdout] test domain::report_collector::tests::default_os_is_unknown ... ok
[INFO] [stdout] test domain::report_collector::tests::default_security_is_permissive ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_verify_passes_on_fresh_report ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_invalid ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_new_computes_checksum ... ok
[INFO] [stdout] test domain::report_collector::tests::extract_proc_field_model_name ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_whole_cores ... ok
[INFO] [stdout] test domain::report_collector::tests::default_health_is_zeroed ... ok
[INFO] [stdout] test domain::report_collector::tests::extract_proc_field_missing ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_verify_fails_on_tampered_report ... ok
[INFO] [stdout] test domain::report_collector::tests::default_hardware_is_zeroed ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_serialization_round_trip ... ok
[INFO] [stdout] test domain::node_report::tests::two_different_reports_have_different_checksums ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_is_stale_false_when_fresh ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_is_stale_boundary ... ok
[INFO] [stdout] test domain::node_report::tests::stored_report_verify_fails_on_wrong_checksum ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_ki ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_mi ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_meminfo_kb_missing_field ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_empty ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_os_release_field_missing ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_no_nameservers ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_os_release_field_quoted ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_standard ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_resolv_conf_with_comments ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_invalid ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_cpu_millis ... ok
[INFO] [stdout] test domain::types::tests::gc_result_roundtrip ... ok
[INFO] [stdout] test domain::types::tests::cache_info_roundtrip ... ok
[INFO] [stdout] test domain::report_store::tests::read_corrupt_file_fails ... ok
[INFO] [stdout] test domain::types::tests::daemon_health_roundtrip ... ok
[INFO] [stdout] test domain::types::tests::gc_status_roundtrip ... ok
[INFO] [stdout] test client::tests::from_node_none_uses_default ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_meminfo_kb_standard ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_gi ... ok
[INFO] [stdout] test domain::report_collector::tests::parse_k8s_memory_bytes ... ok
[INFO] [stdout] test domain::types::tests::optimise_result_roundtrip ... ok
[INFO] [stdout] test domain::types::tests::platform_info_roundtrip ... ok
[INFO] [stdout] test domain::types::tests::store_info_roundtrip ... ok
[INFO] [stdout] test domain::report_store::tests::read_tampered_checksum_fails ... ok
[INFO] [stdout] test domain::report_store::tests::exists_false_for_missing_file ... ok
[INFO] [stdout] test direnv_setup::tests::direnv_lib_dir_is_under_config ... ok
[INFO] [stdout] test domain::report_collector::tests::default_network_is_empty ... ok
[INFO] [stdout] test domain::types::tests::telemetry_payload_roundtrip ... ok
[INFO] [stdout] test domain::report_store::tests::read_nonexistent_fails ... ok
[INFO] [stdout] test harden::primitives::minimize::tests::category_is_minimize_for_all ... ok
[INFO] [stdout] test harden::primitives::minimize::tests::minimize_closure_dry_run_does_not_spawn_nix ... ok
[INFO] [stdout] test harden::primitives::fs::tests::tmpfs_dry_run_writes_nothing ... ok
[INFO] [stdout] test harden::primitives::fs::tests::tmpfs_writes_unit_files ... ok
[INFO] [stdout] test harden::primitives::minimize::tests::strip_docs_real_deletes ... ok
[INFO] [stdout] test harden::primitives::fs::tests::remount_readonly_writes_service ... ok
[INFO] [stdout] test harden::primitives::kernel::tests::lockdown_writes_cmdline_drop_in ... ok
[INFO] [stdout] test harden::primitives::audit::tests::remove_default_users_drops_ec2_user ... ok
[INFO] [stdout] test harden::primitives::minimize::tests::strip_locales_reports_candidates ... ok
[INFO] [stdout] test harden::primitives::kernel::tests::blacklist_modules_writes_modprobe_entries ... ok
[INFO] [stdout] test domain::report_store::tests::write_creates_parent_directories ... ok
[INFO] [stdout] test domain::report_store::tests::write_and_read_roundtrip ... ok
[INFO] [stdout] test harden::primitives::minimize::tests::strip_docs_dry_run_reports_candidates ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::zero_fill_dry_run_is_noop ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::scrub_cloud_init_removes_state ... ok
[INFO] [stdout] test harden::primitives::tests::every_named_primitive_resolves ... ok
[INFO] [stdout] test harden::primitives::tests::unknown_primitive_returns_none ... ok
[INFO] [stdout] test harden::profile::tests::compose_dedupes_across_profiles ... ok
[INFO] [stdout] test harden::profile::tests::category_ordering ... ok
[INFO] [stdout] test harden::profile::tests::compose_merges_params_lists_unique ... ok
[INFO] [stdout] test harden::profile::tests::compose_orders_minimize_before_scrub ... ok
[INFO] [stdout] test harden::profile::tests::compose_strictest_policy_wins ... ok
[INFO] [stdout] test harden::profile::tests::flatten_dedupes ... ok
[INFO] [stdout] test harden::profile::tests::flatten_preserves_order_within_category ... ok
[INFO] [stdout] test harden::runner::tests::unknown_primitive_abort_fails_fast ... ok
[INFO] [stdout] test harden::primitives::network::tests::moduli_drops_weak_lines ... ok
[INFO] [stdout] test nix::tests::nix_status_serializes ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::scrub_shell_history_removes_bash_history ... ok
[INFO] [stdout] test nix::tests::nix_status_uninstalled_serializes ... ok
[INFO] [stdout] test domain::types::tests::nix_config_roundtrip ... ok
[INFO] [stdout] test nix::tests::parse_version_string_garbage ... ok
[INFO] [stdout] test nix::tests::parse_version_string_standard ... ok
[INFO] [stdout] test domain::types::tests::nix_status_roundtrip ... ok
[INFO] [stdout] test nix::tests::parse_version_string_empty ... ok
[INFO] [stdout] test nix::tests::parse_version_string_with_trailing_newline ... ok
[INFO] [stdout] test harden::runner::tests::all_minimize_dry_run_passes ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::darwin_flake_references_sops_nix_absent ... ok
[INFO] [stdout] test harden::runner::tests::unknown_primitive_warn_continues ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::scrub_temp_dirs_empties_tmp ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::scrub_ssh_keys_removes_host_keys_and_auth_dirs ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::darwin_flake_uses_darwin_system ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::is_darwin_profile_rejects_non_darwin ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::is_darwin_profile_matches_macos_developer ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_contains_hostname ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_contains_profile ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::nixos_flake_uses_nixos_system ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::write_flake_nix_creates_file ... ok
[INFO] [stdout] test harden::primitives::network::tests::sshd_strict_writes_drop_in ... ok
[INFO] [stdout] test node_identity::tests::deep_merge_adds_new_keys ... ok
[INFO] [stdout] test node_identity::tests::deep_merge_nested_mappings ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::write_node_json_creates_parent_dirs ... ok
[INFO] [stdout] test node_identity::nix_gen::tests::write_node_json_creates_valid_json ... ok
[INFO] [stdout] test node_identity::tests::deep_merge_null_overlay_preserves_base ... ok
[INFO] [stdout] test node_identity::tests::from_bootstrap_sets_fields ... ok
[INFO] [stdout] test node_identity::tests::from_bootstrap_with_age_key ... ok
[INFO] [stdout] test node_identity::tests::deep_merge_sequence_overlay_replaces ... ok
[INFO] [stdout] test node_identity::tests::load_nonexistent_returns_error ... ok
[INFO] [stdout] test node_identity::tests::deep_merge_scalar_overlay_wins ... ok
[INFO] [stdout] test node_identity::tests::load_invalid_yaml_returns_error ... ok
[INFO] [stdout] test node_identity::tests::remove_field_path_nested ... ok
[INFO] [stdout] test node_identity::tests::redact_removes_specified_fields ... ok
[INFO] [stdout] test node_identity::tests::load_with_overlays_ignores_non_yaml_files ... ok
[INFO] [stdout] test node_identity::tests::remove_field_path_empty_path_is_noop ... ok
[INFO] [stdout] test node_identity::tests::remove_field_path_nonexistent_is_noop ... ok
[INFO] [stdout] test node_identity::tests::load_with_overlays_sorts_alphabetically ... ok
[INFO] [stdout] test node_identity::tests::redact_empty_fields_is_identity ... ok
[INFO] [stdout] test node_identity::tests::remove_field_path_single_level ... ok
[INFO] [stdout] test platform::tests::backend_display_determinate ... ok
[INFO] [stdout] test platform::tests::backend_display_upstream ... ok
[INFO] [stdout] test platform::tests::backend_parse_determinate ... ok
[INFO] [stdout] test platform::tests::backend_parse_case_sensitive ... ok
[INFO] [stdout] test node_identity::tests::to_json_produces_valid_json ... ok
[INFO] [stdout] test node_identity::tests::load_with_overlays_applies_overlay ... ok
[INFO] [stdout] test platform::tests::backend_parse_empty_fails ... ok
[INFO] [stdout] test platform::tests::backend_parse_upstream ... ok
[INFO] [stdout] test platform::tests::backend_roundtrip_display_parse ... ok
[INFO] [stdout] test platform::tests::detect_returns_current_platform ... ok
[INFO] [stdout] test platform::tests::backend_parse_unknown_fails ... ok
[INFO] [stdout] test node_identity::tests::save_creates_parent_dirs ... ok
[INFO] [stdout] test platform::tests::installer_url_determinate_macos ... ok
[INFO] [stdout] test node_identity::tests::load_with_overlays_skips_bad_files ... ok
[INFO] [stdout] test platform::tests::installer_url_upstream_linux ... ok
[INFO] [stdout] test platform::tests::target_triple_linux_x86_64 ... ok
[INFO] [stdout] test platform::tests::target_triple_linux_aarch64 ... ok
[INFO] [stdout] test platform::tests::installer_url_uses_correct_triple ... ok
[INFO] [stdout] test node_identity::tests::save_and_load_round_trip ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_unknown ... ok
[INFO] [stdout] test platform::tests::target_triple_macos_x86_64 ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_backward_compat_aliases ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_aliases ... ok
[INFO] [stdout] test server::bootstrap::tests::default_distribution_is_k3s ... ok
[INFO] [stdout] test platform::tests::target_triple_macos_aarch64 ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_cluster_init ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_agent_omits_server_only_keys ... ok
[INFO] [stdout] test node_identity::tests::from_bootstrap_includes_user_in_trusted_users ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_server_includes_server_only_keys ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_vpn_tls_san ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_display ... ok
[INFO] [stdout] test server::bootstrap::tests::kubernetes_distribution_generates_kubeadm_config ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_no_token_when_empty ... ok
[INFO] [stdout] test harden::primitives::audit::tests::auditd_baseline_writes_rules_file ... ok
[INFO] [stdout] test config::tests::load_with_path_merges_yaml ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_phase_fromstr_roundtrip ... ok
[INFO] [stdout] test server::bootstrap::tests::bootstrap_state_serialization ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_distribution_generates_k3s_config ... ok
[INFO] [stdout] test server::bootstrap::tests::k3s_config_join_server ... ok
[INFO] [stdout] test server::bootstrap::tests::get_instance_region_fails_gracefully_off_ec2 ... ok
[INFO] [stdout] test server::bootstrap::tests::get_instance_id_fails_gracefully_off_ec2 ... ok
[INFO] [stdout] test server::bootstrap::tests::provision_skips_when_no_secrets ... ok
[INFO] [stdout] test nix::tests::detect_returns_status ... ok
[INFO] [stdout] test server::bootstrap::tests::provision_writes_secrets_with_correct_permissions ... ok
[INFO] [stdout] test server::cluster_config::tests::derive_hostname ... ok
[INFO] [stdout] test server::cluster_config::tests::derive_hostname_defaults ... ok
[INFO] [stdout] test server::bootstrap::tests::tag_instance_is_nonfatal_off_ec2 ... ok
[INFO] [stdout] test server::cluster_config::tests::cluster_config_defaults_node_role_to_none_for_backwards_compat ... ok
[INFO] [stdout] test server::cluster_config::tests::cluster_config_accepts_node_role_from_json ... ok
[INFO] [stdout] test server::bootstrap::tests::provision_skips_empty_values ... ok
[INFO] [stdout] test server::cluster_config::tests::derive_hostname_with_index ... ok
[INFO] [stdout] test server::bootstrap::tests::tag_instance_phase_is_nonfatal_off_ec2 ... ok
[INFO] [stdout] test server::cluster_config::tests::invalid_json_returns_error ... ok
[INFO] [stdout] test server::cluster_config::tests::cluster_config_accepts_node_role_agent_gpu_with_driver ... ok
[INFO] [stdout] test server::cluster_config::tests::is_k3s_with_explicit_k3s ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_agent_gpu_routes_to_agent_service ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_agent_ingress_carries_class ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_agent_storage_carries_backend ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_server_init_slug_and_sentinel ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_serde_roundtrip_all_variants ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_sentinel_paths_are_unique_across_all_variants ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_minimal_config ... ok
[INFO] [stdout] test server::cluster_config::tests::load_from_file ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_full_config ... ok
[INFO] [stdout] test server::cluster_config::tests::is_kubernetes_with_explicit_kubernetes ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_missing_cluster_name_fails ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_empty_bootstrap_secrets ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_bootstrap_secrets ... ok
[INFO] [stdout] test server::cluster_config::tests::node_role_slugs_match_arch_synthesizer ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_empty_json_fails ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_empty_object_fails ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_vpn_config ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_with_unknown_fields_succeeds ... ok
[INFO] [stdout] test server::cluster_config::tests::parse_without_bootstrap_secrets ... ok
[INFO] [stdout] test server::cluster_config::tests::should_rebuild_default_is_false ... ok
[INFO] [stdout] test server::cluster_config::tests::should_rebuild_force_overrides_skip ... ok
[INFO] [stdout] test server::cluster_config::tests::should_rebuild_force_rebuild_true ... ok
[INFO] [stdout] test server::cluster_config::tests::should_rebuild_skip_nix_rebuild_false ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_fluxcd_defaults ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_minimal ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_agent_server_addr ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_secrets ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_without_vpn ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_kubernetes_distribution ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_fluxcd ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_endpoint_rejects_invalid ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_endpoint_valid ... ok
[INFO] [stdout] test server::cluster_config::tests::unknown_distribution_is_neither ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_cidr_valid_ipv4 ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_cidr_valid_ipv6 ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_cidr_rejects_invalid ... ok
[INFO] [stdout] test server::cluster_config::tests::should_rebuild_skip_nix_rebuild_true ... ok
[INFO] [stdout] test server::cluster_config::tests::to_node_identity_with_vpn ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_passes_with_secure_key_files ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_rejects_insecure_permissions ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_addresses ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_full_rejects_missing_key_files ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_cidr_in_allowed_ips ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_full_tunnel ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_k8s_trust_interface ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_interface_name ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_listen_port_without_firewall_port ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_listen_ports ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_privileged_listen_port ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_duplicate_peer_keys ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_address_cidr ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_firewall ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_ipv6_full_tunnel ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_preshared_key ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_invalid_endpoint ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_address ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_missing_private_key ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_no_peers ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_security_passes_without_vpn ... ok
[INFO] [stdout] test server::cluster_config::tests::vpn_require_liveness_defaults_false ... ok
[INFO] [stdout] test server::cluster_config::tests::vpn_require_liveness_parsed_when_true ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_reports_all_violations ... ok
[INFO] [stdout] test server::health::tests::k3s_health_status_roundtrip ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_unknown_profile ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_empty_output ... ok
[INFO] [stdout] test server::health::tests::fluxcd_health_status_serializes ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_invalid_timestamp_ignored ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_multiple_interfaces ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_security_passes_for_valid_config ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_no_handshake ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_valid_output ... ok
[INFO] [stdout] test server::health::tests::wireguard_health_status_roundtrip ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_malformed_lines_ignored ... ok
[INFO] [stdout] test server::health::tests::parse_wg_handshakes_stale_handshake ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_basic ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_with_vpn_san ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_secondary_cp ... ok
[INFO] [stdout] test server::kubeadm::tests::distribution_helpers ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_init_config_with_token ... ok
[INFO] [stdout] test server::health::tests::k3s_health_status_serializes ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_no_ca_hash_uses_unsafe_skip ... ok
[INFO] [stdout] test server::cluster_config::tests::validate_vpn_rejects_k8s_empty_ports ... ok
[INFO] [stdout] test server::health::tests::wireguard_health_status_serializes ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_missing_private_key_file ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_minimal ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_full ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_no_address ... ok
[INFO] [stdout] test telemetry::vector::tests::new_preserves_url_with_path ... ok
[INFO] [stdout] test server::wireguard_fast::tests::read_key_file_clean_value ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_custom_cidrs ... ok
[INFO] [stdout] test tools::tests::find_known_tool ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_missing_peer_public_key ... ok
[INFO] [stdout] test tools::tests::find_returns_valid_path ... ok
[INFO] [stdout] test server::wireguard_fast::tests::read_key_file_missing ... ok
[INFO] [stdout] test telemetry::vector::tests::new_stores_url ... ok
[INFO] [stdout] test vpn::keygen::tests::generate_psk_is_32_bytes ... ok
[INFO] [stdout] test vpn::keygen::tests::generate_keypair_produces_valid_base64 ... ok
[INFO] [stdout] test tools::tests::find_nonexistent_tool ... ok
[INFO] [stdout] test vpn::keygen::tests::run_rejects_invalid_profile ... ok
[INFO] [stdout] test vpn::keygen::tests::generate_keypair_derives_correct_public_key ... ok
[INFO] [stdout] test vpn::keygen::tests::keypairs_are_unique ... ok
[INFO] [stdout] test vpn::keygen::tests::generate_returns_structured_output ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::assigns_distinct_addresses ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::each_spoke_has_unique_keypair ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::each_spoke_has_unique_psk ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::interface_naming_explicit_suffix_wins ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::json_output_is_round_trippable ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::peers_json_uses_hub_view_addresses ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::rejects_empty_spokes ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::rejects_too_many_spokes ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::sops_paths_match_vpn_links_convention ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::ssm_commands_inline_the_credentials ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::ssm_paths_match_pangea_architecture_convention ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_join_config_worker ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_node_name_uses_derive_hostname ... ok
[INFO] [stdout] test server::kubeadm::tests::kubeadm_token_from_bootstrap_secrets ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_multiple_peers ... ok
[INFO] [stdout] test server::wireguard_fast::tests::read_key_file_trims_whitespace ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_default_spokes_apply_when_per_entry_omitted ... ok
[INFO] [stdout] test vpn::keygen::tests::json_output_is_valid ... ok
[INFO] [stdout] test vpn::keygen::tests::sops_paths_follow_convention ... ok
[INFO] [stdout] test server::wireguard_fast::tests::generate_config_link_level_keepalive_fallback ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_per_entry_spokes_override_defaults ... ok
[INFO] [stdout] test vpn::portao_bootstrap::tests::interface_naming_default_truncates_env_to_3_chars ... ok
[INFO] [stdout] test vpn::keygen::tests::run_succeeds_with_valid_profiles ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::parses_yaml_config ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::load_config_reads_yaml_from_disk ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::rejects_duplicate_env_name ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::rejects_empty_fleet ... ok
[INFO] [stdout] test vpn::validate::tests::accepts_15_char_interface_name ... ok
[INFO] [stdout] test vpn::validate::tests::empty_links_passes ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::rejects_zero_spokes_with_empty_default ... ok
[INFO] [stdout] test vpn::validate::tests::collect_violations_returns_all_errors ... ok
[INFO] [stdout] test vpn::validate::tests::check_files_reports_missing_private_key ... ok
[INFO] [stdout] test vpn::validate::tests::error_can_be_downcast_to_vpn_validation_error ... ok
[INFO] [stdout] test vpn::validate::tests::invalid_cidr ... ok
[INFO] [stdout] test vpn::validate::tests::no_profile_allows_trust_interface ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_duplicate_link_names ... ok
[INFO] [stdout] test vpn::validate::tests::invalid_endpoint ... ok
[INFO] [stdout] test vpn::validate::tests::k8s_profile_rejects_trust_interface ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_empty_interface_name ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_interface_with_special_chars ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_long_interface_name ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_full_tunnel ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_missing_address ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_missing_private_key ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_missing_firewall ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_peer_missing_public_key ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_no_peers ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_ipv6_full_tunnel ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_keys_unique_across_portaos ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_privileged_listen_port ... ok
[INFO] [stdout] test vpn::validate::tests::valid_cidr_ipv4 ... ok
[INFO] [stdout] test vpn::validate::tests::valid_endpoint ... ok
[INFO] [stdout] test vpn::validate::tests::validate_key_file_nonexistent ... ok
[INFO] [stdout] test vpn::validate::tests::rejects_unknown_profile ... ok
[INFO] [stdout] test vpn::validate::tests::valid_config_passes ... ok
[INFO] [stdout] test vpn::validate::tests::valid_cidr_ipv6 ... ok
[INFO] [stdout] test vpn::validate::tests::validate_key_file_insecure_permissions ... ok
[INFO] [stdout] test vpn::validate::tests::validate_key_file_secure_permissions ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::ssm_param_paths_match_pangea_convention_per_env ... ok
[INFO] [stderr] No journal files were found.
[INFO] [stderr] Failed to connect to /run/systemd/journal/io.systemd.journal: No such file or directory
[INFO] [stdout] test vpn::portao_fleet::tests::json_output_round_trips ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::rejects_duplicate_subnet_base ... ok
[INFO] [stdout] test harden::primitives::network::tests::disable_ipv6_writes_sysctl_drop_in ... ok
[INFO] [stdout] test harden::primitives::kernel::tests::sysctl_baseline_writes_expected_keys ... ok
[INFO] [stdout] test vpn::portao_fleet::tests::bootstrap_yields_one_portao_per_entry ... ok
[INFO] [stdout] test harden::primitives::scrub::tests::scrub_logs_truncates_btmp_removes_rest ... ok
[INFO] [stdout] test harden::primitives::network::tests::firewall_writes_nft_with_ssh_default ... ok
[INFO] [stdout] test server::bootstrap::tests::provision_is_idempotent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 380 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80", kill_on_drop: false }`
[INFO] [stdout] 152619c867d23b5012440864f03c0a0ec4420f45d92ca48aea2da3343c43ea80
